Анализ пользовательского поведения в мобильном приложении

Цель исследования — разобраться, как ведут себя пользователи мобильного приложения стартапа, который продаёт продукты питания. Узнать, как и сколько пользователей доходит до покупки, сколько пользователей «застревает» на предыдущих шагах, на каких именно. Оценить результаты A/A/B-теста и выяснить, какие шрифты в приложении лучше — старые или новые.

Этапы исследования

Получим данные о действиях пользователей и событиях. О качестве данных ничего не известно, поэтому перед исследованием изучим данные и выполним предобработку. Анализ пройдёт в шесть этапов:

  1. Загрузка и подготовка данных к анализу.
  2. Изучение и проверка данных.
  3. Анализ воронки событий.
  4. Исследование результатов A/A/B-эксперимента.
  5. Общий вывод.

Во время исследования изучим:

Описание данных

В нашем распоряжении датасет logs_exp. Каждая запись в логе — это действие пользователя или событие. Структура данных:

Загрузка и подготовка данных к анализу

Явные дубликаты удалены. Нет никаких оснований полагать, что в данных присутствуют неявные дубликаты.

Вывод

  1. В датафрейме logs 4 колонки и 244 126 строк. Пропусков нет.
  2. Привели названия колонок к стилю snake_case.
  3. Пропуски не обнаружены.
  4. Очистили данные от явных дубликатов.
  5. Привели к формату даты и времени колонку date_time. В остальных колонках типы данных соответствуют представленным значениям.

Изучение и проверка данных

Количество событий и пользователей в логе

Вывод

В логе 7551 уникальный пользователь. Всего 5 событий:

  1. MainScreenAppear — пользователь увидел главную страницу,
  2. PaymentScreenSuccessful — оплатил покупку,
  3. CartScreenAppear — перешёл в корзину,
  4. OffersScreenAppear — посмотрел блок с предложениями,
  5. Tutorial — открыл руководство.

Среднее количество событий на пользователя

Видим наличие выбросов — при медиане равной 20 максимальное количество событий на пользователя составляет 2307, что выглядит неправдоподобно. Построим точечный график.

Визуализация подтверждает предположение по наличию выбросов. У большинства пользователей события не превышают и сотни, не говоря уже о тысячах. Посчитаем перцентили, чтобы убрать из анализа аномальных пользователей.

Не более 5% пользователей совершают более 89 событий. И не более 1% пользователей — более 200. Примем за аномальных пользователей тех, кто совершил более 89 событий.

Вывод

На данном этапе обнаружили 372 аномальных пользователя, совершивших более 89 событий. Их доля составляет 4,9%. После очищения данных от аномалий возьмём медианное значение для определения среднего количества событий. Таким образом, в среднем на пользователя приходится 18 событий.

Период проведения эксперимента

Период проведения эксперимента — с 25 июля по 7 августа 2019 года. По визуализации видим, что данные до 1 августа неполные, поэтому уберём их из анализа.

Вывод

На данном этапе обнаружили 1.4% неполных данных. Отбросив их, выяснили, на самом деле располагаем данными за неделю — с 1 по 7 августа 2019 года.

Количество пользователей в группах

Если пользователь видит разные версии исследуемой страницы в ходе одного исследования, неизвестно, какая именно повлияла на его решения. Значит, и результаты такого теста нельзя интерпретировать однозначно. Поэтому проверим, есть ли такие пользователи. При обнаружении удалим их.

Вывод

Количество пользователей в контрольных группах и экспериментальной сопоставимо.

Анализ воронки событий

Распределение событий в логах

Напомним, всего 5 событий. Расположим их в порядке убывания частоты.

  1. MainScreenAppear — пользователь увидел главную страницу — 58%,
  2. OffersScreenAppear — посмотрел блок с предложениями — 18.8%,
  3. CartScreenAppear — перешёл в корзину — 12.9%,
  4. PaymentScreenSuccessful — оплатил покупку — 9.7%,
  5. Tutorial — открыл руководство — 0.5%.

Вывод

Чаще всего встречается событие «Пользователь увидел главную страницу» — 58%, реже всего «Открыл руководство» — 0.5%.

События по числу уникальных пользователей

Вывод

Расположим события в порядке убывания доли уникальных пользователей, которые хоть раз совершали это событие, относительно общего числа уникальных пользователей.

  1. Пользователь увидел главную страницу — 98.5%
  2. Посмотрел блок с предложениями — 59.1%
  3. Перешёл в корзину — 47.3%
  4. Оплатил покупку — 44.6%
  5. Открыл руководство — 10.8%

Отметим, доля события «Открыл руководство» — всего 10.8%, и оно не выстраивается в последовательную цепочку. При расчёте воронки учитывать это событие не будем. Порядок остальных событий выглядят правдоподобно: пользователь увидел главную страницу → посмотрел блок с предложениями → перешёл в корзину → оплатил покупку. Однако пользователь может пропустить некоторые этапы, например, перейдя с главной страницы сразу в корзину.

Доли пользователей, проходящих на следующий шаг воронки

Вывод

Исследование результатов A/A/B-эксперимента

Количество пользователей каждой группы

Вывод

По воронке видно, количество пользователей в группах на каждом шаге сопоставимо.

Функция для проведения z-теста

Сравнение групп при критическом уровне статистической значимости alpha = 0.05

Сравнение контрольных групп 246 и 247

Проверим, находят ли статистические критерии при критическом уровне статистической значимости alpha = 0.05 разницу между контрольными группами 246 и 247. Перед проведением z-теста сформулируем гипотезы.

Вывод

Z-тест показал, при критическом уровне статистической значимости alpha = 0.05 между контрольными группами 246 и 247 статистически значимых различий нет по всем событиям. Доли уникальных посетителей, побывавших всех этапах воронки, одинаковы. Можно сказать, что разбиение на группы работает корректно.

Сравнение контрольной группы 246 и экспериментальной группы 248

Проверим, находят ли статистические критерии при критическом уровне статистической значимости alpha = 0.05 разницу между контрольной группой 246 и экспериментальной группой 248. Перед проведением z-теста сформулируем гипотезы.

Вывод

Z-тест показал, при критическом уровне статистической значимости alpha = 0.05 между контрольной группой 246 и экспериментальной группой 248 статистически значимых различий нет по всем событиям. Доли уникальных посетителей, побывавших всех этапах воронки, одинаковы.

Сравнение контрольной группы 247 и экспериментальной группы 248

Проверим, находят ли статистические критерии при критическом уровне статистической значимости alpha = 0.05 разницу между контрольной группой 247 и экспериментальной группой 248. Перед проведением z-теста сформулируем гипотезы.

Вывод

Z-тест показал, при критическом уровне статистической значимости alpha = 0.05 между контрольной группой 247 и экспериментальной группой 248 статистически значимых различий нет по всем событиям. Доли уникальных посетителей, побывавших всех этапах воронки, одинаковы.

Сравнение объединённой контрольной группы 246+247 и экспериментальной группы 248

Проверим, находят ли статистические критерии при критическом уровне статистической значимости alpha = 0.05 разницу между объединённой контрольной группой 246+247 и экспериментальной группой 248. Перед проведением z-теста сформулируем гипотезы.

Несколько сравнений, проводимых на одних и тех же данных — это множественный тест. Его важная особенность в том, что с каждой новой проверкой гипотезы растёт вероятность ошибки первого рода. При попарном сравнении вероятность, что тест покажет ложнопозитивный результат равна уровню значимости.

Чтобы снизить вероятность ложнопозитивного результата при множественном тестировании гипотез, воспользуемся методом Бонферрони: уровни значимости в каждом из m сравнений в m раз меньше, чем уровень значимости, требуемый при единственном сравнении. Проще говоря, разделим уровень значимости 0.05 на 16 гипотез и получим критический уровень статистической значимости alpha = 0.003125. Так как и без поправок нет различий, то и меньшем alpha тоже не будет.

Вывод

Z-тест показал, при критическом уровне статистической значимости alpha = 0.05 между объединённой контрольной группой 246+247 и экспериментальной группой 248 статистически значимых различий нет по всем событиям. Доли уникальных посетителей, побывавших всех этапах воронки, одинаковы. Аналогично результатам сравнения экспериментальной группы с каждой из контрольных групп в отдельности по каждому событию.

На данном шаге было проведено 16 проверок статистических гипотез. При критическом уровне статистической значимости alpha = 0.05 статистически значимых различий по каждому событию между группами нет. Доли уникальных посетителей, побывавших на этапе воронки, одинаковы.

Общий вывод